package com.kim.authorization.server.service;

import com.kim.oauth.common.model.UserAccount;

/**
 * 用户账户Service
 */
public interface UserAccountService {

    /**
     * 根据用户名或手机号查询用户账户
     *
     * @param username 用户名或手机号
     */
    UserAccount selectByUserName(String username);

    /**
     * 根据手机号查询用户账户
     * @param phone 手机号
     */
    UserAccount selectByPhone(String phone);

    /**
     * 组合用户账户对象与角色权限
     * @param userAccount 用户账户对象
     */
    UserAccount composeUserAccountAndAuthority(UserAccount userAccount);

    /**
     * 验证用户是否可用
     * @param userAccount 用户账户对象
     */
    void validateUser(UserAccount userAccount);

    /**
     * 根据微信unionId查询用户
     * @param unionId 微信Id
     */
    UserAccount selectWeChatUnionId(String unionId);
}
